Lampen.ino
#include "Lampen.h"
/* Initialisation of the Traffic Light structure, written just to reduse the amount of code on the first page
*
*/
void init_ampel(ampel_t* Ampel)
{
// Sub structure initialisation. Pin Numbers
Ampel->ein_ampel[0].rot = 13;
pinMode(Ampel->ein_ampel[0].rot, OUTPUT);
Ampel->ein_ampel[0].gelb = 12;
pinMode(Ampel->ein_ampel[0].gelb, OUTPUT);
Ampel->ein_ampel[0].grun = 11;
pinMode(Ampel->ein_ampel[0].grun, OUTPUT);
Ampel->ein_ampel[0].current_state = ROT;
Ampel->ein_ampel[0].future_state = ROT;
Ampel->ein_ampel[0].ticks = 0;
//Ampel->ein_ampel[0].grun_blinken = 0;
Ampel->ein_ampel[1].rot = 10;
pinMode(Ampel->ein_ampel[1].rot, OUTPUT);
Ampel->ein_ampel[1].gelb = 9;
pinMode(Ampel->ein_ampel[1].gelb, OUTPUT);
Ampel->ein_ampel[1].grun = 8;
pinMode(Ampel->ein_ampel[1].grun, OUTPUT);
Ampel->ein_ampel[1].current_state = ROT;
Ampel->ein_ampel[1].future_state = ROT;
Ampel->ein_ampel[1].ticks = 0;
//Ampel->ein_ampel[1].grun_blinken = 0;
Ampel->ein_ampel[2].rot = 5;
pinMode(Ampel->ein_ampel[2].rot, OUTPUT);
Ampel->ein_ampel[2].gelb = 7;
pinMode(Ampel->ein_ampel[2].gelb, OUTPUT);
Ampel->ein_ampel[2].grun = 6;
pinMode(Ampel->ein_ampel[2].grun, OUTPUT);
Ampel->ein_ampel[2].current_state = ROT;
Ampel->ein_ampel[2].future_state = ROT;
Ampel->ein_ampel[2].ticks = 0;
//Ampel->ein_ampel[2].grun_blinken = 0;
Ampel->ein_ampel[3].rot = 2;
pinMode(Ampel->ein_ampel[3].rot, OUTPUT);
Ampel->ein_ampel[3].gelb = 4;
pinMode(Ampel->ein_ampel[3].gelb, OUTPUT);
Ampel->ein_ampel[3].grun = 3;
pinMode(Ampel->ein_ampel[3].grun, OUTPUT);
Ampel->ein_ampel[3].current_state = ROT;
Ampel->ein_ampel[3].future_state = ROT;
Ampel->ein_ampel[3].ticks = 0;
//Ampel->ein_ampel[3].grun_blinken = 0;
Ampel->ein_ampel[4].rot = 14;
pinMode(Ampel->ein_ampel[4].rot, OUTPUT);
Ampel->ein_ampel[4].gelb = 15;
pinMode(Ampel->ein_ampel[4].gelb, OUTPUT);
Ampel->ein_ampel[4].grun = 16;
pinMode(Ampel->ein_ampel[4].grun, OUTPUT);
Ampel->ein_ampel[4].current_state = ROT;
Ampel->ein_ampel[4].future_state = ROT;
Ampel->ein_ampel[4].ticks = 0;
// Ampel->ein_ampel[4].grun_blinken = 0;
// Timings
Ampel->main_state_time = AMPEL_MAIN_TIME; // mS
Ampel->transit_state_time = AMPEL_TRANSIT_TIME; // mS
// Ampel->blink_state_time = AMPEL_BLINK_TIME; // mS
Ampel->curr_phase = 0;
}